procedure TMainForm.CopyBigFile(SrcName, 
                                                                 DestName: String);
var
    src,
    dest    :TFileStream;

    Buffer  :array[0..4096] of char;  
    fRead,
    fWrite  :integer;

 begin
    src:=TFileStream.Create(SrcName,fmOpenRead);
    dest:=TFileStream.Create(DestName,fmCreate);

    ProgressBar.Max:=src.Size;
    ProgressBar.Min:=0;

    repeat
       fRead:=src.Read(Buffer,sizeOf(Buffer));
       fwrite:=dest.write(Buffer,fRead);
       ProgressBar.Position:=ProgressBar.Position+fRead;
    until (fRead = 0) or (fWrite <> fRead);

    src.Free;
    dest.Free;
   end;
